The Service Oriented Architecture (SOA) is a popular architectural paradigm for the development of software applications. For example, Web services provide the SOA to other applications via industry standard network, interfaces and protocols. The SOA is based on loosely-coupled and standards-based architectures. It is one approach to distributed computing that allows networked software resources to be leveraged.
An Enterprise Service Bus (ESB) is an underlying infrastructure for the SOA. The ESB implements the abstract design concept of the SOA. The ESB is an event-driven and standards-based messaging engine that provides services for more complex architectures. The ESB provides an infrastructure that links together services and clients to enable distributed applications and processes. The ESB allows systems to interact through standard transports, such as file transfer protocol (FTP) and hypertext transfer protocol (HTTP), and to provide SOA-based applications. The ESB provides the capabilities of message handling, filtering, data transformation, content-based routing, and message repositories. The ESB provides a service to a client using a service deployed on an ESB server at runtime. The client receives the service from the deployed service through the exchange of messages with the ESB server.
Performance of the ESB can be measured by the time it takes for a deployed service to process a message. However, the time measured at the client side is generally not accurate due to an unknown initialization time (e.g., several seconds) for the ESB server to initialize the deployed service. To obtain an accurate measurement of the ESB performance, conventional techniques sometimes modify the source code of a client application to include performance measuring code, or modify the service deployed to the ESB server to perform performance measurements. However, an enterprise may implement many different services that perform various tasks for various client applications. Modifying either the client applications or the services to conduct performance measurements would necessitate extensive re-programming of the existing code, which is time consuming and error prone.